package top.kaoshanji.p4ch05a.mapper;

import org.apache.ibatis.annotations.Param;
import top.kaoshanji.p4ch05a.model.User;

import java.util.List;
import java.util.Map;

/**
 * @author kaoshanji
 * ^_^
 * create time 2025/4/20 13:50
 */
public interface UserMapper {

    /**
     * 动态SQL语句if标签
     * @param userName userName
     * @param passWord passWord
     * @return User
     */
    List<User> queryUserWithIf(@Param("userName") String userName, @Param("passWord") String passWord);

    /**
     * 动态SQL语句where标签
     * @param userName userName
     * @param passWord passWord
     * @return User
     */
    List<User> queryUserWithWhere(@Param("userName") String userName, @Param("passWord") String passWord);

    /**
     * 动态SQL语句Choose标签
     * @param userName userName
     * @param passWord passWord
     * @return User
     */
    List<User> queryUserWithChoose(@Param("userName") String userName, @Param("passWord") String passWord);

    /**
     * 动态SQL语句Set标签
     * @param user User
     * @return 影响的行数
     */
    int updateUserWithSet(User user);

    /**
     * 使用foreach标签遍历List集合
     * @param userIdList List
     * @return User
     */
    List<User> queryUserWithForeachByList(@Param("userIdList") List<Integer> userIdList);

    /**
     * 使用foreach标签遍历数组
     * @param userIdArray 数组
     * @return User
     */
    List<User> queryUserWithForeachByArray(@Param("userIdArray") int[] userIdArray);

    /**
     * 使用foreach标签遍历Map
     * @param userMap Map
     * @return User
     */
    List<User> queryUserWithForeachByMap(@Param("userMap") Map<String ,Object> userMap);



}
